home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <libraries/gadtools.h>
- #include <exec/memory.h>
- #include <clib/exec_protos.h>
- #include <clib/dos_protos.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define TX(x) if(Buttons[x].Text[0]!='\0')
- extern struct NewMenu *EWinMenu;
- #define PX(x) if(Buttons[x].Text[0]!='\0' && Buttons[x].Type)
- static int MaxMenus=0;
- void MaddItem(UBYTE Type,char *Label,char *CommKey,UWORD Flags,LONG Mutual,APTR User);
- void CreateCustomMenus(int nodes);
- extern int BM[];
- extern char *MyVerStr;
- extern char *VerStr;
- struct BUTTON
- {
- char Text[100];
- char Command[100];
- BOOL Type;
- } ;
- extern struct BUTTON Buttons[];
- char chip Version[200];
- extern char *GetDate(void);
- int menuset = 0;
- void MaddRem(void);
- void MaddNodes(int nodes);
- void CreateCustomMenus(int nodes)
- {
- int bt,nm;
- int tempnodes;
- int i;
- tempnodes=nodes;
- (void)GetDate();
- for(i=0;i<2;i++)
- {
- bt=0; nm=0;
- menuset=i;
- nodes=tempnodes; nodes--;
-
- MaddItem( NM_TITLE, "Project", 0 , 0, 0, (APTR)0);
- MaddItem( NM_ITEM, "About",0,0,0,(APTR)0);
- strcpy(Version," AmiExpress Professional "); strcat(Version,&VerStr[6]);
- MaddItem( NM_SUB,&Version,0,0,0,(APTR)0);
- MaddItem( NM_SUB," Written by Joseph Hodge ",0,0,0,(APTR)0);
-
- MaddItem( NM_ITEM, "/X Technical", 0,0,0,(APTR)0);
- MaddItem( NM_SUB," AmiExpress Technical Support",0,0,0,(APTR)0);
- MaddItem( NM_SUB," ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," ByteMaster ByteMaster's BBS USA - 703-639-6114 ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," ",0,0,0,(APTR)0);
- MaddItem( NM_ITEM,"/X Developement",0,0,0,(APTR)0);
- MaddItem( NM_SUB," /X Developement Team ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," ~~~~~~~~~~~~~~~~~~~~~~ ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," James E. Millsap ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," Gregg Green ",0,0,0,(APTR)0);;
-
- MaddItem( NM_ITEM,"/X Utility Developement",0,0,0,(APTR)0);
- MaddItem( NM_SUB," /X Utility Developement Team ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ",0,0,0,(APTR)0);
- MaddItem( NM_SUB," James E. Millsap ",0,0,0,(APTR)0);
-
- MaddItem( NM_TITLE, "Master Control",0,0,0,(APTR)0);
- MaddItem( NM_ITEM, "Sysop Login",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Instant Login",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "AEShell",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Toggle Chat",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Exit Node",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Local Login",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Reserve Node",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Accounts",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Init Modem",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Node(offhook)",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Quiet Node",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Config Node",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM, "Node Chat",0, 0, 0, (APTR)0);
- MaddNodes(nodes);
- MaddItem( NM_ITEM,"Set NRAMS",0,0,0,(APTR)0);
- MaddNodes(nodes);
-
- MaddItem( NM_TITLE, "Custom Control",0,0,0,(APTR)0);
- TX(0)
- {
- BM[nm++]=bt;MaddItem( NM_ITEM, (STRPTR)&Buttons[0].Text,0, 0, 0, (APTR)0);
- }bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
- TX(bt){ BM[nm++]=bt; MaddItem( NM_ITEM, (STRPTR)&Buttons[bt].Text,0, 0, 0, (APTR)0);}bt++;
- PX(bt-1)
- {
- MaddNodes(nodes);
- }
-
-
- MaddItem( NM_END, 0, 0 , 0, 0, (APTR)0);
- }
- }
- void MaddNodes(int nodes)
- {
- char temp[100];
- register int i;
- for(i=0;i<=nodes;i++)
- {
- sprintf(temp,"Node %c",'0'+i);
- MaddItem( NM_SUB,temp,0,0,0,(APTR)0);
- }
- }
- void MaddItem(UBYTE Type,char *Label,char *CommKey,UWORD Flags,LONG Mutual,APTR User)
- {
- static int i=0;
- struct NewMenu *t;
- char temp[200];
- char *s;
- if(menuset==1)
- {
- EWinMenu=(struct NewMenu *)AllocMem((LONG)sizeof(struct NewMenu)*(LONG)i,MEMF_PUBLIC|MEMF_CLEAR);
- menuset=-1;
- i=0;
- }
- if(menuset==-1)
- {
- t=EWinMenu+i;
- t->nm_Type=Type;
- s=AllocMem(80L,MEMF_PUBLIC|MEMF_CLEAR);
- if(Label!=NULL)
- strcpy(s,Label);else strcpy(s,"");
- t->nm_Label=s;
- t->nm_CommKey=0;//(STRPTR)CommKey;
- t->nm_Flags=Flags;
- t->nm_MutualExclude=Mutual;
- t->nm_UserData=0;
- MaxMenus++;
- }
- i++;
- }
-
- void MaddRem(void)
- {
- register int i;
- struct NewMenu *t;
- for(i=0;i<MaxMenus;i++)
- {
- t=EWinMenu+i;
- FreeMem(t->nm_Label,80L);
- }
- FreeMem(EWinMenu,(LONG)(sizeof(struct NewMenu))*(LONG)MaxMenus);
- }